package myApps
{
	import controller.HttpCommand;
	import controller.StartUpCommand;
	
	import org.puremvc.as3.patterns.facade.Facade;

	/**
	 * @author 陈恒,
	 * @time 2009年3月3日
	 * 继承PureMVc模式下的Facade外观模式,单例模式的主类 
	 */
	public class SimpleFacade extends Facade
	{
		/**
		 * 定义一个常量,用于注册Command的Notification,可以考虑定义在一个单独的类中
		 */
		public static const STARTUP:String="startup"; 
		public static const CONN:String="httpconn";
		/**
		 * 默认的构造函数,这里不做修改,可以不写
		 */
		public function SimpleFacade()
		{
			super();
		}
		/**
		 * 单例模式,不过并不完整,构造函数不做强制的private要求 
		 */
		public static function getInstance():SimpleFacade
		{
			if(instance==null)instance=new SimpleFacade();
			return instance as SimpleFacade;
		}
		/**
		 *
		 * 重写继承的方法,用于集中初始化程序的命令,也便于初始化过程 
		 */ 
		override protected function initializeController():void
		{
			super.initializeController();
			registerCommand(STARTUP,StartUpCommand);
			registerCommand(CONN,HttpCommand);
		}
		/***
		 * 
		 * 用于在mxml中启动程序,发送Notification进行程序的初始化操作
		 * 同时在参数中附带了主Application的引用
		 */
		public function startUp(app:SimpleSSHF):void
		{
			sendNotification(STARTUP,app);
		}
		
	}
}